@echo off
echo 正在编译Spring IoC和AOP演示项目...

REM 检查Java是否安装
java -version >nul 2>&1
if errorlevel 1 (
    echo 错误: 未找到Java，请确保已安装Java 8或更高版本
    pause
    exit /b 1
)

REM 检查Maven是否安装
mvn -version >nul 2>&1
if errorlevel 1 (
    echo 警告: 未找到Maven，尝试直接使用Java编译和运行...
    goto :compile_java
)

echo 使用Maven编译项目...
mvn clean compile
if errorlevel 1 (
    echo Maven编译失败，尝试直接使用Java编译...
    goto :compile_java
)

echo 使用Maven运行项目...
mvn exec:java -Dexec.mainClass="com.example.Application"
goto :end

:compile_java
echo 使用Java直接编译和运行...
if not exist "target\classes" mkdir target\classes

REM 编译所有Java文件
javac -cp "lib/*" -d target/classes src/main/java/com/example/annotation/*.java
javac -cp "lib/*" -d target/classes src/main/java/com/example/aspect/*.java
javac -cp "lib/*" -d target/classes src/main/java/com/example/config/*.java
javac -cp "lib/*" -d target/classes src/main/java/com/example/service/*.java
javac -cp "lib/*" -d target/classes src/main/java/com/example/Application.java

if errorlevel 1 (
    echo 编译失败，请检查Java环境
    pause
    exit /b 1
)

echo 运行项目...
java -cp "target/classes;lib/*" com.example.Application

:end
echo.
echo 程序执行完成！
pause
